1. Field of the Invention
The present invention relates to computer systems, software architectures and programs, and more particularly to a method, system and computer program product for evaluating Java programs to determine code plagiarism.
2. Description of the Related Art
Java is a robust, portable object-oriented programming language developed by Sun Microsystems, Inc., that is gaining wide acceptance for writing code for the Internet and World Wide Web (hereinafter, “Web”). The nature of Java programming allows programmers to easily decompile Java code and review its source code. As such, competitors are able to obtain software from other vendors and review their source code as part of their process of developing their own Java programs. It is a simple matter for the Java source code itself to be copied into the new software program being developed. This copying of the Java source code infringes on the copyright of the original author of the Java source code. Unfortunately, there are few tools available to discover such code plagiarism, and the typical detection devices that are available are easily fooled when the plagiarizing source code is slightly modified or changed from the original source code.
This difficulty in detecting code plagiarism is further complicated when source code for the infringing software is not available. There are a variety of this obfuscation programs that limit access to source code of a program. Without viewing the original source code, it is extremely difficult to determine if program code has been copied. Using artificial intelligence algorithms, software can analyze source code for keywords, patterns, and compare them to known software programs. If duplication of a known software program is found within a certain probability, the new code is considered to be copied or duplicated. However, such a technique has hereto only been capable of detecting such patterns in source code.
Accordingly, it would be valuable to provide a tool for detecting code plagiarism and intellectual property infringement of a java program, even when the original code has been modified somewhat by the plagiarist. Such a tool would have particular value if you could detect code plagiarism even if the Java source code was not available.